/*============================================================================*/
/*                   CONTINENTAL AUTOMOTIVE SYSTEMS                           */
/*============================================================================*/
/*                        OBJECT SPECIFICATION                                */
/*============================================================================*
* name:            APP_AutoLamps.h
* version:         1.0
* created_by:      Continental
* date_created:    June 7 2011
*=============================================================================*/
/* DESCRIPTION : Header file for Application layer for AUTOLAMPS              */
/*============================================================================*/
/* FUNCTION COMMENT : Describes the functions for Application Layer for       */
/* AUTOLAMPS                                                                  */
/* Include the state machine for AUTOLAMPS                                    */
/*============================================================================*/
/*                               OBJECT HISTORY                               */
/*============================================================================*/
/*  REVISION |   DATE      |                               |      AUTHOR      */
/*----------------------------------------------------------------------------*/
/*  1.0      | 07/jun/2011 |                               | Continental      */
/* Initial version for the Lab 2 using Freescale Bolero micro.                */                                                              
/*============================================================================*/

#ifndef APP_AUTOLAMPS_H                          /* To avoid double inclusion */
#define APP_AUTOLAMPS_H

/* Register definitions for selected microcontroller */
#include "MCU_derivative.h"

typedef enum
{
	LIGHTS_OFF,
	LIGHTS_ON,
	HALF_LIGHT	
}E_SM_AUTOLAMPS;	/* States for AUTOLAMPS State Machine */


/* Functions */
void APP_AutoLamps_Init(void);

void SM_AUTOLAMPS(E_SM_AUTOLAMPS e_sm_autolamps);

/* Determines next state */
T_UBYTE SM_AutoLamps_NextState(void);

/* Calculates light sensor percentage */
T_UBYTE APP_AutoLamps_lightPercentage(T_UWORD sensor_value);

void APP_AutoLamps_BothlampsPwm(void);

/* Headlamps */
void APP_AutoLamps_Headlamps_On(void);
void APP_AutoLamps_Headlamps_Off(void);
void APP_AutoLamps_HeadlampsPwm(void);

/* Parklamps */
void APP_AutoLamps_Parklamps_On(void);
void APP_AutoLamps_Parklamps_Off(void);
void APP_AutoLamps_ParklampsPwm(void);

#endif